Fuel injection control for start-up of internal combustion engine

ABSTRACT

An internal combustion engine ( 2 ) provided with a starter motor sequentially performs combustion of fuel in a plurality of cylinders (#1-#4). Each cylinder is provided with an intake port ( 7 ) and a fuel injector ( 8 ) to inject fuel in the intake port ( 7 ) and repeatedly performs an intake stroke, compression stroke, expansion stroke and an exhaust stroke. A sensor ( 9, 11 ) generates a signal identifying a cylinder in a specific position in a specific stroke and the controller ( 1 ) executes a cylinder-stroke identification in response to the signal. Upon the first execution of the cylinder-stroke identification when the engine is cranked, a fuel injection is performed for a cylinder in the intake stroke and for a cylinder in the exhaust stroke similtaneously so as to ensure the fuel supply amount required for the first combustion in each cylinder.

FIELD OF THE INVENTION

[0001] This invention relates to fuel injection control for starting upan internal combustion engine.

BACKGROUND OF THE INVENTION

[0002] Tokkai 2000-45841 published by the Japanese Patent Office in 2000discloses simultaneous fuel injection to all cylinders of an engineimmediately after the ignition switch is switched to the ON position.

[0003] In a spark-ignition engine injecting fuel sequentially into theintake port, fuel injected during cranking of the engine adheres to thewall surface of the intake port and tends to form a flow along the wall.This phenomenon is hereafter referred to as “wall flow”. Consequentlytime is required for fuel to reach the combustion chamber and preferredstability of combustion during cranking of the engine can not beobtained. The prior-art technique aims to form a wall flow in advance asa result of injecting fuel all at once to all cylinders immediatelyafter the ignition switch is turned to the ON position. As a result,fuel injected sequentially to respective cylinders thereafter flows intothe combustion chamber smoothly without adhering to the wall face of theintake port.

SUMMARY OF THE INVENTION

[0004] Spark ignition of the air-fuel mixture in each cylinder isgenerally performed in the vicinity of the compression dead center.However, it is noted that each cylinder performs respectively differentstrokes when simultaneous injection to all cylinders is performed.Furthermore in the period after simultaneous injection to all cylindersuntil initial spark ignition to each cylinder, some cylinders undergosequential fuel injection while others do not undergo sequential fuelinjection.

[0005] As a result, a deviation is produced in the air-fuel ratio of thefuel mixture at initial sparking ignition in each cylinder. In cylindershaving a lean air-fuel ratio, misfiring may result. In cylinders havinga rich air-fuel ratio, incomplete combustion may result. Both misfiringor incomplete combustion have an adverse effect on the stability of theengine and on the exhaust emission components.

[0006] It is therefore an object of this invention to increase stabilityof combustion in each cylinder when starting an engine which performssequential fuel injection.

[0007] In order to achieve the above object, this invention provides afuel injection control device for use with such an internal combustionengine that comprises a plurality of cylinders which sequentiallyperform a combustion of fuel and a starter motor which cranks up theengine. Each of the cylinders is provided with an intake port and a fuelinjector which injects fuel into the intake port, and sequentiallypreforms an intake stroke, a compression stroke, a expansion stroke andan exhaust stroke.

[0008] The fuel injection control device comprises a first sensor whichdetects a start of the starter motor, a second sensor which detects acylinder in a specific position in a specific stroke and generates acorresponding signal, and a programmable controller.

[0009] The controller is programmed to execute a cylinder-strokeidentification identifying a present stroke of each cylinder based onthe signal generated by the second sensor, and control the fuelinjectors to simultaneously perform a primary fuel injection for acylinder in the intake stroke and for a cylinder in the exhaust strokesimultaneously, on the first execution of the cylinder-strokeidentification.

[0010] This invention also provides a fuel injection control method forthe above internal combustion engine. The method comprises detecting astart of the starter motor, detecting a cylinder in a specific positionin a specific stroke, executing a cylinder-stroke identificationidentifying a present stroke of each cylinder based on the cylinder inthe specific position in the specific stroke, and controlling the fuelinjectors to simultaneously perform a primary fuel injection for acylinder in the intake stroke and for a cylinder in the exhaust strokesimultaneously, on the first execution of the cylinder-strokeidentification.

[0011] The details as well as other features and advantages of thisinvention are set forth in the remainder of the specification and areshown in the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012]FIG. 1 is a schematic diagram of an internal combustion engine towhich this invention is applied.

[0013]FIG. 2 is a block diagram describing a control function of acontroller according to this invention.

[0014]FIG. 3 is a flowchart describing a main routine executed by thecontroller for performing fuel injection and calculating fuel injectionamount at engine start-up.

[0015]FIG. 4 is a flowchart describing a subroutine for performing fuelinjection executed by the controller.

[0016]FIG. 5 is a flowchart describing a subroutine for performing fuelinjection in a normal and a low temperature range executed by thecontroller.

[0017]FIG. 6 is a flowchart describing a subroutine for performing fuelinjection in an extremely low temperature range executed by thecontroller.

[0018]FIG. 7 is a flowchart describing a subroutine executed by thecontroller for performing fuel injection based on a fuel injection endtiming.

[0019]FIG. 8 is a flowchart describing a subroutine executed by thecontroller for calculating a fuel injection end timing.

[0020]FIG. 9 is similar to FIG. 8, but showing another embodiment ofthis invention related to the calculation of the fuel injection endtiming.

[0021]FIG. 10 is a flowchart describing a subroutine executed by thecontroller for calculating a fuel injection pulse width.

[0022]FIG. 11 is a flowchart describing a subroutine executed by thecontroller for calculating a fuel injection pulse width of a preliminaryfuel injection.

[0023]FIG. 12 is a flowchart describing a subroutine executed by thecontroller for calculating a fuel injection pulse width of a primaryfuel injection in a starting period.

[0024]FIG. 13 is a flowchart describing a subroutine executed by thecontroller for calculating a fuel injection pulse width of a secondaryfuel injection in the starting period.

[0025]FIG. 14 is a flowchart describing a subroutine executed by thecontroller for calculating a fuel injection pulse width in a normaloperation period.

[0026] FIGS. 15A-15N are timing charts describing a fuel injectionpattern in the low temperature range resulting from the fuel injectioncontrol by the controller.

[0027] FIGS. 16A-16N are timing charts describing a fuel injectionpattern in the extremely low temperature range resulting from the fuelinjection control by the controller.

[0028] FIGS. 17A-17N are timing charts describing a fuel injectionpattern in the normal temperature range resulting from the fuelinjection control by the controller.

[0029]FIG. 18 is similar to FIG. 5 but showing a second embodiment ofthis invention.

[0030]FIG. 19 is similar to FIG. 6 but showing the second embodiment ofthis invention.

[0031]FIG. 20 is similar to FIG. 13 but showing the second embodiment ofthis invention.

[0032]FIG. 21 is similar to FIG. 18 but showing a third embodiment ofthis invention.

[0033]FIG. 22 is similar to FIG. 19 but showing the third embodiment ofthis invention.

[0034]FIG. 23 is a flowchart describing a routine performed by acontroller according to the third embodiment of this invention forcalculating a fuel amount discharged from an exhaust valve of theengine.

[0035]FIG. 24 is a flowchart describing a routine performed by thecontroller according to the third embodiment of this invention forcounting an elapsed time from a start of the preliminary fuel injection.

[0036]FIG. 25 is similar to FIG. 20 but showing the third embodiment ofthis invention.

[0037] FIGS. 26A-26O are timing charts for describing a fuel injectionpattern in the low temperature range according to the second and thirdembodiments of this invention.

[0038]FIG. 27 is similar to FIG. 23 but showing a fourth embodiment ofthis invention.

[0039] FIGS. 28A-28C are diagrams describing a setting method of thefuel injection amount applied by a controller according to a fifthembodiment of this invention.

[0040]FIG. 29 is similar to FIG. 11 but showing the fifth embodiment ofthis invention.

[0041]FIG. 30 is similar to FIG. 12 but showing the fifth embodiment ofthis invention.

[0042]FIG. 31 is similar to FIG. 13 but showing the fifth embodiment ofthis invention.

[0043]FIG. 32 is similar to FIG. 11 but showing a sixth embodiment ofthis invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0044] Referring to FIG. 1 of the drawings, a four-cylinder gasolineengine 2 for a vehicle is provided with an intake pipe 3 and an exhaustgas pipe 17.

[0045] The intake pipe 3 is connected to an intake port 7 for eachcylinder via a collector and an intake manifold branching off therefrom.A fuel injector 8 and an intake valve 18 are provided in the intake port7 of each cylinder. A combustion chamber 6 combusting a mixture of fuelinjected by the fuel injector 8 and air aspirated through the intakeport 3 are formed in each cylinder. The fuel injector 8 injects fuel inresponse to an input injection pulse signal.

[0046] The amount of air aspirated from the intake pipe 3 is regulatedby a throttle 5 provided in the midway along the intake pipe 3. Acombustion gas of the air-fuel mixture is discharged from the combustionchamber 6 as an exhaust gas to the exhaust gas pipe 17 through anexhaust valve 19 and an exhaust port 20.

[0047] The engine 2 is a four-stroke cycle engine in which each cylinder#1 through #4 repeats the cycle of an intake, a compression, anexpansion and an exhaust stroke for two rotations of a crank shaft 10.The cycle is repeated in the sequence of #1, #3, #4, #2. During asteady-state operation, fuel is injected from a fuel injector 8 in theexhaust stroke of each cylinder as a result of the input of theinjection pulse signal to the fuel injector 8 from a controller 1.

[0048] A spark plug 14 is provided facing the combustion chamber 6 ineach cylinder in order to ignite the air-fuel mixture in the combustionchamber 6. The spark plug 14 generates a spark in the vicinity of acompression dead center of each cylinder in response to a sparkingsignal input to an ignition coil 14A.

[0049] The air-fuel ratio of the air-fuel mixture is controlled to apredetermined target air-fuel ratio by the controller 1. In order torealize this control, the controller 1 is provided with signals inputrespectively from an air flow meter 4 which detects an intake air amountQc through the intake pipe 3, a water temperature sensor 15 whichdetects a temperature Tw of cooling water in the engine 2, an air-fuelratio sensor 16 which detects the air-fuel ratio A/F of the air-fuelmixture based on an oxygen concentration in the exhaust gas, a crankangle sensor 9 which detects a specific rotation position of the crankshaft 10 of the engine 2, a cam position sensor 11 which detects aspecific rotation position of a cam 12 which drives the exhaust valve 19for each cylinder and an ignition switch 13.

[0050] The ignition switch 13 is operated by a driver of the vehicle. Ina first operating step, a controller 1 and a fuel pump supplying fuel tothe fuel injector 8 are started. In a second operating step, a startermotor which cranks up the engine 2 is started.

[0051] A signal IGN which shows that the first operating step has beenperformed and a signal STSG which shows that the second operating stephas been performed are respectively input to the controller 1 from theignition switch 13.

[0052] Next the relationship of the specific rotation position of thecam 12 detected by the cam position sensor 11 and the specific rotationposition of the crank shaft 10 detected by the crank angle sensor 9 willbe described.

[0053] The crank angle sensor 9 detects the specific rotation positionof the crank shaft 10 which corresponds to a predetermined angle beforethe compression dead center of each cylinder and outputs a REF signal tothe controller 1. In the four-cylinder engine 2, the REF signal isgenerated at an interval of 180 degrees. The crank angle sensor 9 alsooutputs a POS signal to the controller 1 when the crank shaft 10 rotatesthrough one degree for example.

[0054] The cam position sensor 11 detects the specific rotation positionof the cam 12 which drives the exhaust valve 19 of each cylinder andoutputs a signal PHASE to the controller 1. With respect to thefour-cylinder engine 2, the cam 12 rotates once for two rotations of theengine 2. The PHASE signal is input to the controller 1 in the sequence#1, #3, #4, #2 for each 180 degree rotation of the engine 2. The PHASEsignal is used to identify which cylinders are in which stroke when theREF signal is input. In the description hereafter, the combination ofthe PHASE signal and the REF signal is termed the cylinder-strokeidentification signal.

[0055] The controller 1 comprises a microcomputer provided with acentral processing unit (CPU), a read only memory (ROM), a random accessmemory (RAM) and an input/output interface (I/O interface). Thecontroller may comprise a plurality of such microcomputers.

[0056] Now referring to FIG. 2, the functions of the controller 1related to fuel injection control will be described. The controller 1 isprovided with a cranking start determination unit 101, a cylinder-strokeidentification unit 102, a rotation speed computing unit 103, aninjection pulse width computing unit 104, a drive signal generating unit105, and an injection start timing computing unit 106. It should benoted that these units are merely virtual units for the purpose ofdescribing the function of the controller 1 and do not have physicalexistence.

[0057] The cranking start determination unit 101 detects the start ofcranking of the engine 2 upon receiving the signal STSG from theignition switch 13. The cylinder-stroke identification unit 102determines the stroke and position of the respective cylinders based onthe cylinder-stroke identification signal and the POS signal. Therotation speed computing unit 103 calculates the rotation speed Ne ofthe engine 2 based on the input number of POS signals per unit time. Theinjection pulse width computing unit 104 calculates the basic fuelinjection pulse width TP by looking up a prestored map based on theintake air amount Qc detected by the air flow meter 4 and the enginerotation speed Ne. Various types of corrections are added based on theair-fuel ratio A/F of the air-fuel mixture detected by the air-fuelratio sensor 16 and the cooling water temperature Tw detected by thewater temperature sensor 15. In this manner, an injection amount commandvalue that is to be output to the fuel injector 8 is determined. Theinjection start timing computing unit 106 determines the start timing offuel injection according to fuel injection conditions. The drive signalgenerating unit 105 outputs an injection pulse signal to the fuelinjector 8 based on the injection amount command value and the injectionstart timing.

[0058] Next the fuel injection control performed by the controller 1when cranking the engine 2 will be described.

[0059] The controller 1 executes fuel injection control corresponding tothree different periods for the fuel injection control when starting theengine 2 so that when the engine 2 is started, each cylinder performsstable combustion of the air-fuel mixture when the first ignitionoperation by the spark plug 14 is performed in each cylinder. The threeperiods are a preliminary period immediately after input of the firstREF signal until input of a first cylinder-stroke identification signal,a starting period after the input of the first cylinder-strokeidentification signal until the controller 1 completes receiving acylinder-stroke identification signals for all the cylinders, and anormal operation period that follows the starting period.

[0060] The controller 1 performs fuel injection control with respect tothese three periods according to three temperature ranges. The threetemperature ranges are a normal temperature range not lower than 10° C.,a low temperature range between −15° C. to 10° C. and an extremely lowtemperature range lower than −15 ° C. A temperature of 10° C.corresponds to a first predetermined temperature and −15° C. correspondsto a second predetermined temperature.

[0061] With respect to the preliminary period, the controller 1 performsa preliminary fuel injection, i.e., a simultaneous fuel injection forall the cylinders, when the engine 2 is in the low temperature range orthe extremely low temperature range. In this manner, the movement offuel injected by the fuel injector 8 to the combustion chamber 6 isfacilitated by forming wall flow in advance as described in theconventional example. The preliminary fuel injection is not performed inthe normal temperature range.

[0062] During the starting period, when operating in the normaltemperature range or the low temperature range, the controller 1 firstinjects fuel into the cylinders in the exhaust stroke and the intakestroke when the first cylinder-stroke identification signal is input.This injection is termed a primary injection. Subsequently, fuelinjection is performed sequentially on the cylinders in the exhauststroke until the starting period terminates. This injection is termed asecondary injection.

[0063] In contrast, in the extremely low temperature range, the primaryinjection is performed only for the cylinder in the intake stroke.Subsequently, the secondary injection is performed sequentially for thecylinders in the intake stroke until the starting period terminates.

[0064] During the normal operation period, the controller 1 controls thefuel injector 8 to perform the sequential fuel injection for thecylinder in the exhaust stroke in the normal temperature range and inthe low temperature range.

[0065] During the normal operating period in the extremely lowtemperature range, the controller 1 controls the fuel injector 8 toperform the sequential fuel injection for the cylinder in the intakestroke until the rotation speed Ne of the engine 2 becomes larger than apredetermined rotation speed, and after the rotation speed Ne becomeslarger than the predetermined rotation speed, the controller 1 controlsthe fuel injector 8 to perform the sequential fuel injection for thecylinder in the exhaust stroke as in the case of the sequential fuelinjection in the normal temperature range and in the low temperaturerange. The predetermined rotation speed is herein set equal to athousand revolutions per minute (1000 rpm).

[0066] The above control will be described more in detail referring toflowcharts of FIGS. 3-14.

[0067]FIG. 3 shows a main routine for fuel injection control. Thecontroller 1 performs this routine at an interval of ten milliseconds aslong as the ignition switch 13 is in the ON position.

[0068] First, in a step S1, the controller 1 compares the elapsed timeTMFPON after the first input of the signal IGN with a reference periodFPONTM. As long as the elapsed time TMFPON is not greater than thereference period FPONTM, the controller 1 terminates the routineimmediately without performing further steps.

[0069] The reference period FPONTM represents a period required from theoperation start of the fuel pump until the fuel pressure reaches asteady-state pressure. In other words, fuel injection in any form is notperformed by the controller 1 as long as the fuel pressure from the fuelpump has not reached the steady-state pressure. Such a processing isnecessary in order to prevent deviations in the fuel injection amountresulting from an insufficient fuel pressure when starting the crankingof the engine 2.

[0070] When the elapsed time TMFPON is larger than the reference periodFPONTM, in a step S2, the controller 1 determines whether or not thecylinder-stroke identification signal or REF signal has been input sincethe immediately preceding occasion when the routine was performed.

[0071] The step S2 merely has the function of determining whether or notfuel injection will be performed during the execution of the routine onthis occasion. Since the rotation speed of the engine 2 is low duringthe cranking, the routine is performed several times while the engine 2undergoes a single rotation during the cranking. Consequently it isnecessary to perform this determination on each occasion the routine isperformed since the execution interval of fuel injection is larger thanthe execution interval of the routine.

[0072] When the condition of the step S2 is satisfied, it means thatfuel injection has to be performed during the execution of the routineon this occasion.

[0073] In this case, the controller 1 executes a subroutine shown inFIG. 4 in a following step S3 in order to perform fuel injection. Thedetermination in the step S2 is performed irrespective of thetemperature range. In other words, the process in the step S3 is commonto all three temperature ranges.

[0074] When the condition of the step S2 is not satisfied, it means thatthe fuel injection has not to be performed during the execution of theroutine on this occasion.

[0075] In this case, the controller 1 calculates the fuel injectionpulse width by performing a subroutine shown in FIG. 10 in a step S4.Furthermore ignition control in the step S5 is performed. Since theignition control is not included in the subject matter of thisinvention, the description thereof will be omitted.

[0076] After the process of the step S3 or the step S5, the controller 1terminates the routine.

[0077] It should be noted that in the step S3, only the selection of thecylinder for fuel injection and the determination of the start period ofinjection are performed. The fuel injection pulse width applied inprocess of the step S3 is the value that was calculated on theimmediately preceding occasion when the process of the step S4 wasperformed.

[0078] Referring now to FIG. 4, a subroutine for fuel injection controlperformed by the controller 1 in the step S3 of FIG. 3 will bedescribed.

[0079] First, in a step S6, the controller 1 determines whether or notan accumulated number of REF signal inputs is smaller than apredetermined value of four. This step determines whether or not thestarting period has finished, or in other words, determines whether ornot the REF signal has been input a number of times which is equal tothe number of cylinders. The predetermined number therefore depends onthe number of cylinders of the engine 2.

[0080] In the step S6, when the accumulated number of REF signal inputsis not smaller than four, it is determined that the starting period hasterminated and the normal operation period has started. In this case,the controller 1 performs a fuel injection control for the normaloperation period by performing a subroutine shown in FIG. 7 in a stepS10.

[0081] In the step S6, when the accumulated number of REF signal inputsis smaller than four, the starting period is determined not to havecompleted.

[0082] In this case, in a step S7, the controller 1 compares a watertemperature TWINT detected by the water temperature sensor 15 when thecranking was started, or when the signal STSG was first input, with thesecond predetermined temperature of −15° C.

[0083] When the water temperature TWINT at startup of cranking is lowerthan −15° C., the controller 1 performs a fuel injection operation inthe extremely low temperature range according to a subroutine shown inFIG. 6 in a step S9.

[0084] When the water temperature TWINT at startup of cranking is notlower than −15° C., the controller 1 performs a fuel injection operationin the normal/low temperature range by performing a subroutine shown inFIG. 5 in a step S8.

[0085] After performing the process in the steps S8, S9 or S10, thecontroller 1 terminates the subroutine.

[0086] Next referring to FIG. 5, the fuel injection control subroutinefor the preliminary and starting periods in the normal/low temperaturerange performed by the controller 1 in the step S8 of FIG. 4 will bedescribed.

[0087] First, in a step S11, the controller 1 determines whether or notthe signal determined in the step S2 of FIG. 3 was the first REF signalinput since the first execution of the main routine.

[0088] This condition is only satisfied when the present occasion is inthe preliminary period. When the condition is satisfied, the controller1 performs fuel injection for all the cylinders simultaneously in a stepS12. This process corresponds to the simultaneous injection for #1-#4shown in FIGS. 15I-15L. The injection pulse width for the fuel injectionperformed in this step is the value previously calculated in the step S4of the main routine.

[0089] When the condition in the step S11 is not satisfied, it meansthat the present occasion is in the starting period, and that thecylinder-stroke identification signal has been input after theimmediately preceding occasion when the subroutine was performed. Inthis case, in a step S13, the controller 1 determines whether or not thesignal determined in the step S2 of FIG. 3 was the first cylinder-strokeidentification signal.

[0090] When the determination result in the step S13 is affirmative, itmeans that it is a timing of the primary fuel injection in the startingperiod. In this case, in a step S14, the controller 1 immediatelyperforms injection for the cylinder undergoing the intake stroke and thecylinder undergoing the exhaust stroke simultaneously. This operation isshown by the second injection for cylinders #1 and #3 in FIGS. 15I and15K.

[0091] When the determination result in the step S13 is negative, itmeans that it is a timing of the secondary fuel injection in thestarting period. In this case, in a step S15, the controller 1 makes thefuel injector 8 start fuel injection for the cylinder undergoing theexhaust stroke at a timing a predetermined period VDINJ1 offset from theinput of the REF signal.

[0092] This process corresponds to the second injection performed forcylinder #4 and the second injection performed for cylinder #2 as shownin FIGS. 15L and 15J. In the step S12 and S14, the controller 1 makesthe fuel injector 8 start fuel injection immediately after the input ofthe REF signal. However in the step S15, the controller 1 makes the fuelinjector 8 start fuel injection at a timing offset from the input of theREF signal.

[0093] After the process in any of the steps S12, S14 or S15 isperformed, the controller terminates the subroutine.

[0094] Next referring FIG. 6, the fuel injection control subroutine forthe preliminary and starting periods in the extremely low temperaturerange performed by the controller 1 in the step S9 of FIG. 4 will bedescribed.

[0095] First, in a step S16, the controller 1 determines whether or notthe signal determined in the step S2 of FIG. 3 was the first REF signalinput since the first execution of the main routine. This determinationis identical to that of the step S11 of FIG. 5.

[0096] Therefore, the condition is only satisfied when the presentoccasion is in the preliminary period. When the condition is satisfied,the controller 1 performs fuel injection for all the cylinderssimultaneously in a step S17. This process is shown by the simultaneousinjection for #1-#4 shown FIGS. 16I-16L. The injection pulse width forthe fuel injection performed in this step is the value previouslycalculated in the step S4 of the main routine.

[0097] When the condition in the step S16 is not satisfied, it meansthat the present occasion is in the starting period, and that thecylinder-stroke identification signal has been input after theimmediately preceding occasion when the subroutine was performed. Inthis case, in a step S18, the controller 1 determines whether or not thesignal determined in the step S2 of FIG. 3 was the first cylinder-strokeidentification signal.

[0098] When the determination result in the step S18 is affirmative, itmeans that it is a timing of the primary fuel injection in the startingperiod. In this case, in a step S19, the controller 1 immediatelyperforms fuel injection for the cylinder undergoing the intake stroke.This operation is shown by the second injection for cylinder #1 in FIG.16I.

[0099] When the determination result in the step S16 is negative, itmeans that it is a timing of the secondary fuel injection in thestarting period. In this case, in a step S20, the controller 1 makes thefuel injector 8 start fuel injection for the cylinder undergoing theintake stroke at a timing a predetermined period VDINJ2 offset from theinput of the REF signal.

[0100] This process corresponds to the second injection performed oncylinder #3 and the second injection performed on cylinder #4 as shownin FIGS. 16K and 16L. In the step S17 and S19, the controller 1 makesthe fuel injector start fuel injection immediately after the input ofthe REF signal. However in the step S20, the controller 1 makes the fuelinjector 8 start fuel injection at a timing offset from the input of theREF signal.

[0101] After the process in any of the steps S17, S19 or S20 isperformed, the controller terminates the subroutine.

[0102] Next referring FIG. 7, the fuel injection control subroutine inthe normal operation period performed by the controller 1 in the stepS10 of FIG. 4 will be described. In this subroutine, the controller 1determines the fuel injection start timing on the basis of the fuelinjection end timing.

[0103] First, in a step S21, the controller 1 reads the fuel injectionpulse width. The value which is read out is a value calculated in thestep S4 of FIG. 3 on the immediately preceding occasion when the mainroutine of FIG. 3 was performed.

[0104] Next in a step S22, a fuel injection end timing is calculated byexecuting a subroutine shown in FIG. 8.

[0105] In a next step S23, the rotation speed Ne of the engine 2 iscalculated based on the REF signal or the POS signal.

[0106] In a next step S24, the fuel injection start timing is calculatedon the basis of the fuel injection pulse width, the fuel injection endtiming and the engine rotation speed.

[0107] After the process of the step S24, the controller 1 terminatesthe subroutine.

[0108] Now referring to FIG. 8, the calculation subroutine for the fuelinjection end timing performed in the step S21 of FIG. 7 will bedescribed. Control of the fuel injection operation based on the fuelinjection end timing is only performed in the normal operation period asclearly shown by the process shown in FIG. 4 above. Thus this subroutineis only applied to fuel injection in the normal operation period.

[0109] First, in a step S25, the controller 1 compares the watertemperature TWINT detected by the water temperature sensor 15 whencranking was started with a second predetermined temperature of −15° C.When TWINT is lower than the second predetermined temperature, theengine rotation speed Ne is compared with a predetermined rotation speedin a step S26. Herein, the predetermined rotation speed is a value fordetermining if the engine 2 has accomplished a complete combustion. Inthis subroutine, the predetermined rotation speed is set equal to 1000rpm.

[0110] When the engine rotation speed is less than the predeterminedrotation speed in the step S26, the target fuel injection end timing isset to a predetermined timing in the intake stroke in a step S27. Theend timing of the fuel injection in the intake stroke during the normaloperation period shown in FIGS. 16I-16L is the timing set in this stepS27.

[0111] When the water temperature TWINT is not lower than the secondpredetermined temperature in the step S25, or when the engine rotationspeed Ne is not less than the predetermined speed in the step S26, thecontroller 1 sets the fuel injection end timing in a step S28 to atiming in the exhaust stroke according to the engine rotation speed Neby looking up a map prestored in the memory. The end timing of the fuelinjection in the exhaust stroke during the normal operation period shownin FIGS. 16I-16L is the timing set in the step S28.

[0112] After the process in the step S27 or S28 is performed, thecontroller 1 terminates the subroutine.

[0113] Next referring to FIG. 9, another embodiment with respect to thecalculation subroutine of the fuel injection end timing will bedescribed.

[0114] The process performed in the step S25, S27 and S28 is the same asthose performed in the subroutine of FIG. 8.

[0115] The controller 1 performs the process of steps S70 and S71instead of the step S26 when the water temperature TWINT at startup ofcranking is lower than the second predetermined temperature in the stepS25.

[0116] In the step S71, the accumulated number of REF signal inputs iscompared with a reference value NREFH. Herein, the accumulated number ofREF signal inputs is the value used in the step S6 of FIG. 4.

[0117] The reference value NREFH is the value calculated in thepreceding step S70 for determining if the fuel injection end timingshould be switched over from the intake stroke to the exhaust stroke.The calculation is performed by looking up a prestored map in the memoryfrom the water temperature TWINT at startup of cranking. As shown inFIG. 9, the reference value NREFH increases as the water temperatureTWINT decreases.

[0118] When the accumulated number of REF signal inputs is less than thereference value NREFH in the step S71, the process of the step S27 isperformed. On the other hand, when the accumulated number of REF signalinputs is not less than the reference value NREFH, the process of thestep S28 is performed.

[0119] After performing the process in the step S27 or S28, thecontroller 1 terminates the subroutine.

[0120] In the subroutine in FIG. 8, after the engine rotation speed Nereaches the predetermined rotation speed irrespective of the watertemperature TWINT at cranking start, the fuel injection end timing isswitched over from the intake stroke to the exhaust stroke. In thissubroutine, however, the switching-over of the fuel injection end timingfrom the intake stroke to the exhaust stroke is delayed the lower thewater temperature TWINT at startup of cranking.

[0121] Since fuel injection in the exhaust stroke is performed in thestate where the intake valve is closed, there is a tendency that theinjected fuel adheres to the valve body and increases wall flow. Thuswhen the water temperature TWINT at startup of cranking is low, it ispreferable to delay the switching-over of the fuel injection end timingfrom the intake stroke to the exhaust stroke in order to stabilize theengine operation. The subroutine of FIG. 9 has been developed to meetthis requirement.

[0122] Referring now to FIG. 10, the subroutine for calculating the fuelinjection pulse width executed by the controller 1 in the step S4 ofFIG. 3 will be described.

[0123] First, in a step S29, the controller 1 determines whether or notthe first REF signal after startup of cranking has been input. When thefirst REF signal after startup of cranking has not been input, theinjection pulse width for the simultaneous fuel injection to all thecylinders during the preliminary period is calculated in a step S35 by asubroutine shown in FIG. 11.

[0124] When the first REF signal after startup of cranking has alreadybeen input, in a step S30, the controller 1 determines whether or notthe first cylinder-stroke identification signal has been input. When thefirst cylinder-stroke identification signal has not been input, in astep S34, the pulse width for the primary fuel injection is calculatedby a subroutine shown in FIG. 12.

[0125] In contrast, when the first cylinder-stroke identification signalhas already been input, the controller 1 determines whether or not thefuel injection during the starting period has completed in a step S31.This determination is the same as the determination performed in thestep S6 of FIG. 4.

[0126] When the fuel injection during the starting period has notcompleted yet, in a step S33, the controller 1 calculates the pulsewidth for the secondary fuel injection is calculated by a subroutineshown in FIG. 33.

[0127] On the other hand, when the fuel injection during the startingperiod has completed, in a step S32, the controller 1 calculates thefuel injection pulse width for the normal operation period is calculatedby a subroutine shown in FIG. 14.

[0128] After the fuel injection pulse width is calculated from any ofthe steps S32 through S35, the controller 1 terminates the subroutine.

[0129] Referring to FIG. 11, the subroutine for calculating the pulsewidth for the simultaneous fuel injection during the preliminary periodthat is performed in the step S35 of FIG. 10 will be described.

[0130] First, in a step S36, the controller 1 reads correctioncoefficients related to the fuel injection pulse width. The correctioncoefficients include an atmospheric pressure correction coefficient TATMfor correcting variation in the mass of air resulting from variation inthe atmospheric pressure, an intake pressure correction coefficient KBSTwhich corrects the variation in the different between the fuel pressureof the fuel pump and the nozzle pressure of the fuel injector 8resulting from the pressure variation in the intake pipe 3, and a timecorrection coefficient KTST for correcting variation in the fuelvaporization ratio resulting from temperature variation in the intakevalve 18 according to the elapsed time after startup of cranking.

[0131] Then in a step S37, the controller 1 calculates a basic valueTIST1 for the preliminary fuel injection by looking up a map which isprestored in the memory from the water temperature TWINT at startup ofcranking. As shown in the figure, the basic value TIST1 increases as thewater temperature TWINT at startup of cranking decreases.

[0132] It should be noted that, when the water temperature TWINT atstartup of cranking is not lower than a first predetermined temperatureof 10° C., the basic value TIST1 takes a value of zero.

[0133] In the low temperature range or extremely low temperature range,the fuel injection amount required for the fuel injection in thestarting period is so large that the fuel injection amount that can beinjected during the starting period may not meet the requirement. Thepreliminary fuel injection has a purpose of supplying fuel to preventthe shortage of fuel when the first combustion is performed as well asto form a wall flow.

[0134] Due to the above reason, the map of TIST1 has been arranged suchthat the basic value TIST1 takes a larger value the lower the watertemperature TWINT at startup of cranking. The map is prepared through acomparison of the required fuel injection amount in the low andextremely low temperature ranges with a physical limit of the fuelinjector 8 with respect to the fuel injection amount.

[0135] In a next step S38, the controller 1 calculates a fuel injectionpulse width TIST1 for the preliminary fuel injection by multiplying thebasic value TIST1by the coefficients above.

[0136] In a next step S39, a minimum fuel injection pulse width TEMIN isread. The minimum fuel injection pulse width TEMIN represents theminimum value of the pulse width that can be handled by the fuelinjector 8.

[0137] In a step S40, the fuel injection pulse width TIST1 for thepreliminary fuel injection is compared with the minimum pulse widthTEMIN. When the fuel injection pulse width TIST1 is smaller than theminimum pulse width TEMIN, it means that the fuel injection amount istoo small to be handled by fuel injector 8. Consequently the controller1 stores the fuel injection pulse width TIST1 as a stored value TIST1Min a step S41, and in a subsequent step S42, the fuel injection pulsewidth TIST1 is set to zero. The stored value TIST1M is added to the fuelinjection pulse width in the next occasion fuel injection is performed.After the process of the step S42, the controller 1 executes the processof a step S43.

[0138] In the step S40, when the fuel injection pulse width TIST1 is notsmaller than the minimum pulse width TEMIN, the controller 1 skips theprocess of the steps S41 and S42 and proceeds to the process of the stepS43.

[0139] In the step S43, the preliminary fuel injection pulse width isset equal to the pulse width TIST1. After this process, the controller 1terminates the subroutine.

[0140] According to this subroutine, The value of TIST1 varies inresponse to the water temperature TWINT at startup of cranking. When thewater temperature TWINT at startup of cranking is higher than the firstpredetermined temperature, TIST1 takes a value of zero. As a result,when the water temperature TWINT at startup of cranking is higher thanthe first predetermined temperature of 10° C., the preliminary fuelinjection, i.e., the simultaneous fuel injection to all the cylinders inthe preliminary period is not performed as shown in FIGS. 17I-17L.

[0141] Referring now to FIG. 12, the subroutine for calculating theprimary fuel injection pulse width in the starting period that isperformed in the step S34 of FIG. 10 will be described.

[0142] First, in a step S44, the controller 1 reads the target fuelinjection pulse width TIPS that was calculated in another routine basedon a target equivalence ratio TFBYA and the basic injection pulse widthTP. Since the calculation of the basic injection pulse width TP, thetarget equivalence ratio TFBYA and the calculation of the target fuelinjection pulse width TIPS based on these two values are known from U.S.Pat. No. 5,615,660, the calculation process of these values are omittedin this description.

[0143] In a next step S45, the atmospheric pressure correctioncoefficient TATM, the intake air pipe pressure correction coefficientKBST and the time correction coefficient KTST described above are read.

[0144] In a next step S46, the controller 1 calculates a basic valueTST2 for the primary fuel injection pulse width in the starting periodby looking up a map prestored in the memory based on the watertemperature TWINT at startup of cranking. The basic value TST2 takeslarger values the lower the water temperature TWINT at startup ofcranking as shown in the figure.

[0145] In a next step S47, the controller 1 calculates the primary fuelinjection pulse width TIST2 for the starting period by multiplying thebasic value TST2 by the above coefficients.

[0146] In a next step S48, it is determined whether or not thepreliminary fuel injection pulse width TIST1 set in the subroutine ofFIG. 11 has a value of zero.

[0147] When the preliminary fuel injection pulse width TIST1 is zero, ina step S49, the stored value TIST1M set in the step S41 of FIG. 11 isadded to the value for TIST2 and the resulting value is set as theprimary fuel injection pulse width TIST2 for the starting period. Afterthe process of the step S49, the controller 1 performs the process ofthe step S50.

[0148] When on the other hand the preliminary fuel injection pulse widthTIST1 is not zero, the step S49 is skipped and the process in the stepS50 is performed.

[0149] In the step S50, the controller 1 compares the primary fuelinjection pulse width TIST2 for the starting period with a valueobtained by subtracting the primary fuel injection pulse width TIST1from the target fuel injection pulse width TIPS read in the step S44.The preliminary fuel injection pulse width TIST1 is the value calculatedin the subroutine of FIG. 11. After the comparison, the larger of thetwo values is set as the primary fuel injection pulse width for thestarting period.

[0150] The process in the step S50 has the following meaning.

[0151] The primary fuel injection pulse width TIST2 for the startingperiod do es not depend on the intake air amount of the engine 2 asclearly shown by its process of determination. On the other hand, whenthe intake air amount of the engine 2 varies, the fuel injection amountmust be varied in order to maintain a target air-fuel ratio of theair-fuel mixture. Thus when the intake air amount of the engine 2 hasbeen varied, the air-fuel ratio of the air-fuel mixture fluctuates ifthe fuel injection is performed according only to the value for TIST2.Consequently adverse effects result in view of the stability ofcombustion or the exhaust emission components of the engine 2.

[0152] In the step S50, a fuel injection pulse width required for thecurrent fuel injection is calculated by subtracting the injection pulsewidth TIST1 already injected by the preliminary fuel injection from thetarget fuel injection pulse width TIPS set in response to the intake airamount, and then the primary fuel injection pulse width TIST2 in thestarting period is adapted not to fall below the calculated pulse width.

[0153] After the process in the step S50, the controller 1 terminatesthe subroutine.

[0154] Referring now to FIG. 13, the subroutine for calculating thesecondary fuel injection pulse width for the second or subsequent fuelinjection occasion in the starting period that is performed in the stepS33 of FIG. 10 will be described.

[0155] First, in a step S51, the target fuel injection pulse width TIPSis read in the same manner as the step S44 of the FIG. 12.

[0156] In a next step S52, the atmospheric pressure correctioncoefficient TATM, the intake air pipe pressure correction coefficientKBST and the time correction coefficient KTST are read in the samemanner as the step S45 of FIG. 12.

[0157] In a next step S53, the controller 1 calculates a basic valueTST3 for the secondary fuel injection pulse width for the second orsubsequent fuel injection occasion in the starting period by looking upa map prestored in the memory based on the water temperature TWINT atstartup of cranking. The basic value TST3 takes larger values the lowerthe water temperature TWINT at startup of cranking as shown in thefigure.

[0158] In a next step S54, the controller 1 calculates the secondaryfuel injection pulse width TIST3 for the starting period by multiplyingthe basic value TST3 by the various coefficients above.

[0159] In a next step S55, it is determined whether or not thepreliminary fuel injection pulse width TIST1 set in the subroutine ofFIG. 11 has a value of zero.

[0160] When the preliminary fuel injection pulse width TIST1 is zero, ina step S56, the stored value TIST1M set in the step S41 of FIG. 11 isadded to the value for TIST3 and the resulting value is set as thesecondary fuel injection pulse width TIST3 on the second or subsequentfuel injection occasion for the starting period. After the process ofthe step S56, the controller performs the process in the step S57.

[0161] When on the other hand the preliminary fuel injection pulse widthTIST1 is not zero, the step S56 is skipped and the process in the stepS50 is performed.

[0162] In the step S57, the controller 1 compares the secondary fuelinjection pulse width TIST3 with a value obtained by subtracting thepreliminary fuel injection pulse width TIST1 from the target fuelinjection pulse width TIPS read in the step S51. The preliminary fuelinjection pulse width TIST1 is the value calculated in the subroutine ofFIG. 11. The larger of the two values is then set as the secondary fuelinjection pulse width for the second or subsequent fuel injectionoccasion in the starting period.

[0163] After performing the process of the step S50, the controller 1terminates the subroutine.

[0164] Referring now to FIG. 14, the subroutine for calculating the fuelinjection pulse width for the normal operation period performed in thestep S32 of FIG. 10 will be described. The fuel injection pulse width inthe normal operation period is herein after referred to as a normal fuelinjection pulse width.

[0165] First, in a step S58, the controller 1 reads the target fuelinjection pulse width CTI for each cylinder. The target fuel injectionpulse width CTI for each cylinder is a value which is determined inresponse to the intake air amount Qc in the same manner as the targetfuel injection pulse width TIPS described above. The calculation of thetarget injection pulse width CTI for each cylinder is known from U.S.Pat. No. 5,404,862.

[0166] In a next step S59, the atmospheric pressure correctioncoefficient TATM, the intake air pipe pressure correction coefficientKBST and the time correction coefficient KTST are read in the samemanner as the step S45 of FIG. 12.

[0167] In a next step S60, the controller 1 reads the rotation speed Neof the engine 2.

[0168] In a next step S61, a rotation speed correction coefficient KNSTis calculated by looking up a map prestored in the memory based on therotation speed Ne of the engine 2. The rotation speed correctioncoefficient KNST is a coefficient which corrects effects of variation inthe engine rotation speed on the fuel injection pulse width.

[0169] In a step S62, the controller 1 calculates a basic value TST4 forthe normal fuel injection pulse width by looking up a map prestored inthe memory based on the water temperature TWINT at startup of cranking.The basic value TST4 takes larger values the lower the water temperatureTWINT at startup of cranking as shown in the figure.

[0170] In a next step S63, the controller 1 calculates the normal fuelinjection pulse width TIST4 by multiplying the basic value TST4 by thevarious coefficients above.

[0171] In a next step S64, the target fuel injection pulse width CTI iscompared with the normal fuel injection pulse width TIST4 and the largerof the two values is set as the normal fuel injection pulse width. Afterthe step S63, the controller 1 terminates the subroutine.

[0172] The result of the above control routines performed by thecontroller 1 is that the preliminary fuel injection is performed for allthe cylinders for the first time when the first REF signal is input andthe water temperature TWINT at startup of cranking is not larger thanthe first predetermined temperature of 10° C. In the normal temperaturerange in which the water temperature TWINT at startup of cranking is notlower than the first predetermined temperature, the preliminary fuelinjection is not performed.

[0173] Next, when the first cylinder-stroke identification signal isinput, if the water temperature TWINT at startup of cranking is notlower than the second predetermined temperature of −15° C., fuelinjection is performed simultaneously for the cylinder undergoing theintake stroke and the cylinder undergoing the exhaust stroke when thecylinder-stroke identification signal is input. In the extremely lowtemperature range in which the water temperature TWINT at startup ofcranking is lower than the second predetermined temperature of −15° C.,fuel injection is performed only for the cylinder undergoing theexliaust stroke.

[0174] Thereafter, fuel injection is performed sequentially on eachoccasion a cylinder-stroke identification signal is input until theaccumulated number of REF signal inputs reaches a value of four. Howeverwhen the water temperature TWINT at startup of cranking is not lowerthan the second predetermined temperature of −15° C., fuel injection isperformed for the cylinder undergoing the exhaust stroke when thecylinder-stroke identification signal is input. In the extremely lowtemperature range in which the water temperature TWINT at startup ofcranking is lower than the second predetermined temperature of −15° C.,fuel injection for the cylinder undergoing the intake stroke isperformed when a cylinder-stroke identification signal is input.

[0175] When the accumulated number of REF signal inputs reaches thevalue of four, fuel injection for normal operation period is performedsequentially for each cylinder. In this fuel injection, firstly the fuelinjection end timing and the injection pulse width for each cylinder aredetermined. Then the fuel injection start timing is determined bysubtracting the injection pulse width from the fuel injection endtiming.

[0176] This fuel injection is performed for each cylinder that undergoesthe exhaust stroke when the water temperature TWINT at startup ofcranking is not lower than the second predetermined temperature of −15°C. In the extremely low temperature range in which the water temperatureTWINT at startup of cranking is lower than the second predeterminedtemperature of −15° C., however, fuel injection is performed in responseto the engine rotation speed. That is to say, when the engine rotationspeed is less than the predetermined speed, fuel injection is performedfor the cylinder undergoing the intake stroke. After the engine rotationspeed reaches the predetermined rotation speed, fuel injection isperformed for the cylinder undergoing the exhaust stroke in the samemanner as when the water temperature TWINT at startup of cranking isnote lower than the second predetermine temperature of −15° C.

[0177] Referring to FIGS. 15I-15L, FIGS. 16I-16L and FIGS. 17I-17L, thefirst combustion takes place in cylinder #1. When the firstcylinder-stroke identification signal is input to the controller 1, thecylinder #1 is undergoing the intake stroke. If the primary fuelinjection is not performed for the cylinder undergoing the intakestroke, only the fuel injected by the preliminary fuel injection isburnt by the first combustion in the cylinder #1. This may result in anextremely lean air-fuel ratio of the air-fuel mixture and make thecombustion unstable.

[0178] According to this invention, however, the primary fuel injectionfor the cylinder in the intake stroke is performed in any temperaturerange, so every cylinder undergoes fuel injection other than thepreliminary fuel injection before it performs the first combustion. As aresult, insufficiency of fuel in a specific cylinder when cranking theengine 2 is prevented, and the stability of combustion of the engine 2during crank up is increased. As a result, the time required forcranking can be shortened and toxic components in the exhaust gasdischarged from the engine 2 during start-up are also reduced.

[0179] Furthermore, since the preliminary fuel injection is performedfor all the cylinders in the low temperature range and the extremely lowtemperature range before the input of the first cylinder-strokeidentification signal, fuel injection amount required for the firstcombustion is ensured in every cylinder irrespective of the watertemperature at startup of cranking.

[0180] Next a second embodiment of this invention will be described.

[0181] This embodiment is related to the application of this inventionto a four-stroke cycle V-type eight-cylinder engine provided withcylinders #1-#8. In this eight-cylinder engine, the PHASE signal isinput into the controller 11 every time when the engine rotates ninetydegrees in the order of #1-#8-#7-#3-#6-#5-#4-#2. In the followingdescription, the components of the engine that are identical to those ofthe engine 1 of the first embodiment will have the same numerals.

[0182] In this eight-cylinder engine, providing that the cylinders #1and #8 are in the exhaust stroke when the preliminary fuel injection isperformed for all the cylinders, the cylinders #4 and #2 are in theintake stroke. During the intake stroke, the intake valve 18 is open, sothe fuel injected from the fuel injector 15 is immediately aspiratedinto the combustion chamber 6 and most of the fuel is discharged fromthe combustion chamber 6 from the exhaust valve 19 when it opens in thefollowing exhaust stroke. As for the other cylinders, the preliminaryfuel injection is performed with the intake valve 19 closed, so the fuelinjected from the fuel injector 15 will not be aspirated into thecombustion chamber until the intake valve 18 opens. Thus, the fuelinjected by the preliminary fuel injection for these cylinders will notbe discharged from the combustion chamber in these cylinders in the nextexhaust stroke.

[0183] Even in for the cylinders #4 and #2, if the preliminary fuelinjection is performed in the later period of the intake stroke, most ofthe fuel will remain in the intake port 7 without being aspirated intothe combustion chamber 6 due to the reason that the intake valve 18closes immediately after the preliminary fuel injection. In the case ofa four-cylinder engine as that of the first embodiment, the intakestroke of a cylinder does not overlap with that of the other cylinders.In a four-cylinder engine, therefore, it is possible to set the fuelinjection timing of the preliminary fuel injection to prevent theinjected fuel form being discharged from the exhaust valve 19 when itopens in the exhaust stroke.

[0184] In an engine provided with more than five cylinders, however,overlapping of the intake stroke between two cylinders is inevitable asshown in FIGS. 26J and 26K where the preliminary fuel injection isperformed when the cylinder #4 is in a later period in the intake strokeand the cylinder #2 is in an earlier period in the same stroke.

[0185] In such a multi-cylinder engine, it is impossible to prevent theinjected fuel from being discharged from every cylinder only by only thesetting of the fuel injection timing. As a result, in thiseight-cylinder engine, when the first combustion is performed in thesecylinders #4 and #2, the air-fuel ratio of the air-fuel mixture will beleaner than in the other cylinders and ignition failure may beanticipated.

[0186] This embodiment prevents the air-fuel ratio of the mixture frombecoming lean when the first combustion takes place in these cylindersby increasing the fuel injection amount in the starting period in thesecylinders.

[0187] As can be understood from FIGS. 26D-26K, the cylinders #2 and #4are the last and the second last cylinders amount the eight cylinders#1-#8 in view of the order of the first combustion when the engine iscranked up. It should be noted that in these cylinders, the spark plug14 sparks in the first compression stroke, but since it is before thefuel injection in the starting period, there is not enough fuel in thecylinder, so combustion is not take place with the first spark in thesecylinders #2 and #4.

[0188] Referring now to FIGS. 18-20, the above control by the controller1 will be described. In this embodiment also, the controller performsthe main routine of FIG. 3 and the subroutines of FIGS. 4, 7-12 and 14as in the case of the first embodiment. The description of these routineand subroutines are omitted.

[0189] According to this embodiment, the controller 31 performs asubroutine shown in FIG. 18 in the step S8 of FIG. 4 instead of thesubroutine of FIG. 5 of the first embodiment, for the fuel injectioncontrol in the preliminary and starting periods in the normal and lowtemperature range. The controller 31 performs a subroutine shown in FIG.19 in the step S9 instead of the subroutine of FIG. 6 of the firstembodiment, for the fuel injection control in the extremely lowtemperature range. The controller 1 performs a subroutine shown in FIG.20 in the step S33 of FIG. 10 instead of the subroutine of FIG. 13 ofthe first embodiment, for calculating the fuel injection pulse width ofthe secondary fuel injection in the starting period.

[0190] The subroutine of FIG. 18 for controlling fuel injection in thepreliminary period and starting period in the normal and low temperaturerange differs from that of FIG. 5 only in that a step S116 is providedafter the step S14 for performing the primary fuel injection in thestarting period. In the step S116, the controller 1 identifies cylindersHOSCYL1 and HOSCVL2 that were in the intake stroke when the preliminaryfuel injection took place. The process of the other steps S11-S15 isidentical to that of the subroutine of FIG. 5.

[0191] The subroutine of FIG. 19 for controlling fuel injection in theextremely low temperature range differs from that of FIG. 6 only in thata step S121 is provided after the step S19 for performing the primaryfuel injection in the starting period. In the step S121, the controller1 identifies the cylinders HOSCYL1 and HOSCVL2 as in the case of thestep S116 of FIG. 18.

[0192] Herein, the relation of the first cylinder-stroke identificationsignal, the cylinders for which the primary fuel injection is performedin the extremely low temperature range, the cylinders for which theprimary fuel injection is performed in the normal/low temperature range,and the above defined cylinders HOSCYL1 and HOSCYL2 are summarized inthe following TABLE 1.

[0193] The cylinders HOSCYL1 and HOSCYL2 can be identified not only inan eight-cylinder engine but also in any type of engine, as long as thenumber of the cylinders and the interval/order of spark ignition areknown. If this relation is previously stored in the memory of thecontroller 1, the controller 1 can immediately identify the cylindersHOSCYL1 and HOSCYL2 upon receiving the first cylinder-strokeidentification signal.

[0194] Next the subroutine of FIG. 20 for calculating the fuel injectionpulse width of the secondary fuel injection in the starting period willbe described.

[0195] In addition to the steps S51-S57 which are identical to those ofthe subroutine of FIG. 13, this subroutine is further provided withsteps S158-S160.

[0196] When the preliminary fuel injection pulse width TIST1 is not zeroin the step S55, the controller 1 determines if the fuel injection onthe next occasion is for the cylinder HOSCYL1 in a step S158. If thedetermination result of the step S158 is negative, the controller 1determines if the fuel injection on the next occasion is for thecylinder HOSCYL2 in a step S161.

[0197] If the determination result in the step S161 is negative, thecontroller 1 sets the secondary fuel injection pulse width in the stepS57 as in the case of the subroutine of FIG. 13.

[0198] If on the other hand, any of the determination results in thestep S158 and S161 is affirmative, the controller 1 applies an increasecorrection of the secondary fuel injection pulse width TIST3 by addingthe preliminary fuel injection pulse width TIST1 to the value calculatedin the step S54, and set the resultant value as the secondary fuelinjection pulse width TIST3.

[0199] In a next step S160, the controller 1 selects the larger of thetarget fuel injection pulse width TIPS that was read in the step S51 andthe secondary fuel injection pulse width TIST3 corrected in the stepS159 as the secondary fuel injection pulse width to be commanded to thefuel injector 15.

[0200] Due to the above process, when the secondary fuel injection forthe cylinders #4 and #2 is performed, a larger amount of fuel isinjected compared with the secondary fuel injection for the othercylinders, so the air-fuel ratio of the air-fuel mixture in thesecylinders is prevented from becoming lean when they perform the firstcombustion.

[0201] Next, referring to FIGS. 21-25 and FIGS. 26A-26O, a thirdembodiment of this invention will be described.

[0202] This embodiment differs from the second embodiment in that thesecondary fuel injection pulse width for the cylinder HOSCYL1 and thatfor the cylinder HOSCYL2 are set to have different values. The rate offuel amount discharged from the exhaust valve 19 with respect to thepreliminary fuel injection amount depends on the timing of thepreliminary fuel injection. The rate decreases as the timing of thepreliminary fuel injection becomes later in the intake stroke.

[0203] In this embodiment, therefore, different correction values areapplied in the calculation of the secondary fuel injection amount forthe cylinder HOSCYL1 and in the calculation of the secondary fuelinjection amount for the cylinder HOSCYL2. The other part of the controlis identical to that of the second embodiment.

[0204]FIG. 21 shows a subroutine that replaces the subroutine of FIG. 18of the second embodiment for controlling fuel injection in thepreliminary and starting periods in the normal and low temperaturerange.

[0205] In this subroutine, steps S217-S219 are added after the step S12of FIG. 18.

[0206] The controller 1, after performing the preliminary fuel injectionfor all the cylinders in the step S12, resets a counter value TIMHOS tozero in the step S217. The counter value TIMHOS is a value for measuringan elapsed time from when the preliminary fuel injection was started.

[0207] In the next step S218, the controller resets a crank anglecounter value DEGHOS to zero. The crank angle counter value DEGHOS is avalue for measuring a current crank angle relative to the crank anglewhen the preliminary fuel injection was started.

[0208] In the next step S219, the controller sets a count flag FCOUNTand a determination flag FHOS1 to unity. The count flag FCOUNT showswhether or not the counting of the elapsed time is being carried, andthe determination flag FHOS1 shows whether or not the crank anglecounter value DEGHOS has reached a predetermined angle.

[0209] As mentioned hereinabove, even in the cylinder where thepreliminary fuel injection is performed in the intake stroke, theinjected fuel is not aspirated into the combustion chamber 6 if theinjection is performed immediately before the closing of the intakevalve 18. The predetermined angle is a threshold value to determine ifthe injected fuel is aspirated into the combustion chamber 6.

[0210] In the cylinder where the preliminary fuel injection is performedin the intake stroke, fuel injected during a period when thedetermination flag FHOS1 is zero is considered to be aspirated into thecombustion chamber 6, but fuel injected after the determination flagFHOS1 has changed to unity is considered not to be aspirated into thecombustion chamber 6. The initial values of the count flag FCOUNT andthe determination flag FHOS1 are both zero.

[0211]FIG. 22 shows a subroutine that replaces the subroutine of FIG. 19of the second embodiment for controlling fuel injection in the extremelylow temperature range.

[0212] In this subroutine, steps S222-S224 are added after the step S17of the subroutine of FIG. 19. The process of the steps S222-S224 isidentical to that of the step S217-S219 in FIG. 21.

[0213]FIG. 23 shows a routine for calculating a fuel amount in pulsewidth which is discharged from the exhaust valve 19 of the cylinderwhich had preliminary fuel injection in the intake stroke. The pulsewidth calculated by this routine constitutes a secondary fuel injectioncorrection value TIST3HOST. The controller 1 repeats this routine at aninterval of one degree in crank angle based on the POS signal from thecrank angle sensor 9.

[0214] In a first step S270, the controller 1 determines if the countflag FCOUNT is not unity. When the count flag FCOUNT is not unity, itmeans that the measurement of the elapsed time is not being performed,and the controller 1 immediately terminates the routine withoutproceeding to further steps.

[0215] When on the other hand, the count flag FCOUNT is unity, thecontroller 1 determines if the crank angle counter value DEGHOS hasreached a predetermined angle DEGLIM2 in a step S271.

[0216] When the crank angle counter value DEGHOS has not reached thepredetermined angle DEGLIM2, the controller 1 increments the crank anglecounter value DEGHOS in a next step S272.

[0217] In a next step S273, the controller 1 compares the crank anglecounter value DEGHOS with a predetermined angle DEGLIM1. In aneight-cylinder engine, DEGLIM1 is equal to DEGLIM2 minus ninety degrees.

[0218] When the crank angle counter value DEGHOS has not reached thepredetermined angle DEGLIM1, the controller 1 terminates the routinewithout proceeding to further steps.

[0219] The intake stroke of the cylinder HOSCYL1 is ninety degreesadvanced from that of the cylinder HOSCYL2.

[0220] The fuel injected by the preliminary fuel injection for thecylinder HOSCYL2 before the crank angle counter value DEGHOS reaches thepredetermined angle DEGLIM2 is aspirated into the combustion chamber 6of the cylinder HOSCYL2 in the intake stroke, and discharged from theexhaust valve 19 in the exhaust stroke.

[0221] The fuel injected by the preliminary fuel injection for thecylinder HOSCYL2 after the crank angle counter value DEGHOS has reachedthe predetermined angle DEGLIM2 is not aspirated into the combustionchamber 6 of the cylinder HOSCYL2 in the intake stroke. This fuel isaspirated into the combustion chamber 6 on the next occasion when thecylinder HOSCYL2 performs the intake stroke and used for the firstcombustion in the cylinder HOSCYL2.

[0222] Similarly, the fuel injected by the preliminary fuel injectionfor the cylinder HOSCYL1 before the crank angle counter value DEGHOSreaches the predetermined angle DEGLIM1 is aspirated into the combustionchamber 6 of the cylinder HOSCYL1 and discharged from the exhaust valve19 when this cylinder performs the exhaust stroke. The fuel injected bythe preliminary fuel injection for the cylinder HOSCYL1 after the crankangle counter value DEGHOS has reached the predetermined angle DEGLIM1is used for the first combustion in the cylinder HOSCYL1.

[0223] All the fuel injected for the cylinder HOSCYL1 before the crankangle counter value DEGHOS reaches the predetermined angle DEGLIM1 andall the fuel injected for the cylinder HOSCYL2 before the crank anglecounter value DEGHOS reaches the predetermined angle DEGLIM2 aredischarged from the exhaust valve 19 and not used for the firstcombustion in these cylinders. In this case, therefore, the controller 1terminates the routine without performing further steps.

[0224] When the crank angle counter value DEGHOS has reached thepredetermined angle DEGLIM1 in the step S273, the controller 1 performsthe process of steps S274-S279.

[0225] First, in the step S274, the controller 1 determines if thedetermination flag FHOS1 is unity. When the determination flag FHOS1 isnot unity, the controller 1 terminates the routine without proceeding tofurther steps.

[0226] The determination flag FHOS1 as well as the count flag FCOUNT areset to unity in the step S219 of FIG. 21 or the step S224 of FIG. 22.Accordingly, when the count flag FCOUNT is determined to have a value ofunity in the step S270, the determination flag FHOS1 also has a value ofunity.

[0227] When the crank angle counter value DEGHOS exceeds thepredetermined crank angle DEGLIM1 in this state, the controller 1 resetsthe determination flag FHOS1 to zero in the step S275. In the next andsubsequent occasion when this routine is performed, the process of thesteps S275-S279 is not performed, because the determination flag FHOS1is zero. In other words, the process of the steps S275-S279 is performedonly once immediately after the crank angle counter value DEGHOS hasexceeded the predetermined angle DEGLIM1.

[0228] After resetting determination flag FHOS1 to zero in the stepS275, the controller 1 reads the counter value TIMHOS in the step S276and compares it with the preliminary fuel injection pulse width TIST1.When the counter value TIMHOS is smaller than the preliminary fuelinjection pulse width TIST1, it means that the preliminary fuelinjection is still being performed when the crank angle counter DEGHOShas exceeded the predetermined angle DEGLIM. In this case, fuel amountequivalent to the counter value TIMHOS out of the preliminary fuelinjection amount TIST1 is discharged from the exhaust valve 19. So thecontroller 1 sets a secondary fuel injection pulse width correctionvalue TIST3HOS1 for the cylinder HOSCYL1 to be equal to the countervalue TIMHOS in the step S278.

[0229] When on the other hand the counter value TIMHOS is not smallerthan the preliminary fuel injection pulse width TIST1, it means that thepreliminary fuel injection has been completed before the crank anglecounter DEGHOS exceeds the predetermined value DEGLIM1. In this case,all the fuel injected by the preliminary fuel injection will bedischarged from the exhaust valve 19. So the controller 1 sets thesecondary fuel injection pulse width correction value TIST3HOS1 for thecylinder HOSCYL1 to be equal to the preliminary fuel injection pulsewidth TIST1 in the step S279.

[0230] After the process of the step S278 or S279, the controller 1terminates the routine.

[0231] When the crank angle counter DEGTHOS has reached thepredetermined crank angle DEGLIM2 in the step S271, the controller 1performs the process of steps S280-S284.

[0232] First, in the step S280, the controller 1 resets the counter flagFCOUNT to zero such that the routine would not substantially beperformed thereafter. After the process of the step S280, the controllerdetermines a secondary fuel injection pulse width correction valueTIST3HOS2 for the cylinder HOSCYL2 by performing a process of the stepsS281-S283 in the same manner as that of the step S277-S279. After theprocess of the steps S281-S283, the controller 1 terminates the routine.

[0233]FIG. 24 shows a counting routine of the counter value TIMHOS. Thecontroller performs this routine at a regular interval DT. The regularinterval DT is herein set to ten milliseconds.

[0234] In a first step S290, the controller determines if the count flagFCOUNT has a value of unity. When the counter flag FCOUNT is not unity,it means that the calculation of the secondary fuel injection pulsewidth correction values TIST3HOS1 and TIST3HOS2 is not being performed.So, the controller 1 terminates the routine without proceeding to a nextstep S291.

[0235] When the counter value FCOUNT has a value of unity, thecontroller 1 increases the counter value TIMHOS by the increment of DT.After the process of the step S291, the controller 1 terminates theroutine.

[0236]FIG. 25 shows a subroutine which the controller 1 performs insteadof the subroutine of FIG. 20 of the second embodiment for thecalculation of the secondary fuel injection pulse width in the startingperiod.

[0237] The steps S51-S57 and the steps S158 and S261 in this subroutineare identical to those of the FIG. 20. In this subroutine, steps S259,S260, S262 and S263 are newly provided instead of the steps S159 andS160 of FIG. 20.

[0238] When it is determined that the secondary fuel injection on thenext occasion will be performed for the cylinder HOSCYL1, the controller1 performs an increase correction of the secondary fuel injection pulsewidth TIST3 for the cylinder HOSCYL1 by the secondary fuel injectionpulse width correction value TIST3HOS1 that was calculated by theroutine of FIG. 23.

[0239] In a next step S260, the larger of the value{TIPS−(TIST1−TIST3HOS1} and the secondary fuel injection pulse widthTIST3 corrected in the step S259 is set as the secondary fuel injectionpulse width for the cylinder HOSCYL1. Herein TIPS is the fuel injectionpulse width that was read in the step S51 and TIST1 is the preliminaryfuel injection pulse width set in the subroutine of FIG. 11. After theprocess of the step S260, the controller 1 terminates the subroutine.

[0240] When it is determined that the secondary fuel injection on thenext occasion will be performed for the cylinder HOSCYL2 in the stepS161, the controller 1 performs an increase correction of the secondaryfuel injection pulse width TIST3 for the cylinder HOSCYL2 by thesecondary fuel injection pulse width correction value TIST3HOS2 that wascalculated by the routine of FIG. 23.

[0241] In a next step S263, the larger of the value{TIPS−(TIST1−TIST3HOS2} and the secondary fuel injection pulse widthTIST3 corrected in the step S262 is set as the secondary fuel injectionpulse width for the cylinder HOSCYL2. After the process of the stepS263, the controller 1 terminates the subroutine.

[0242] According to this embodiment, with respect to the cylindersHOSCYL1 and HOSCYL2 which undergo the preliminary fuel injection in theintake stroke, the amount of fuel that would be discharged from theexhaust valve 19 is calculated

[0243] based on the crank angle counter value DEGHOS which representsthe crank angle from the start of the preliminary fuel injection. Thecontroller 1 sets the secondary fuel injection pulse width correctionvalues TIST3HOS1 and TIST3HOS2 to be equivalent to the fuel amount thatwould be discharged from the exhaust valve 19 of the cylinders HOSCYL1and HOSCYL2 respectively. These correction values are then added to thesecondary fuel injection pulse width TIST3.

[0244] Referring now to FIGS. 26fA-26O, providing that thecylinder-stroke identification signal detects a specific position in thelater period of the compression stroke of each cylinder, and the firstcylinder-stroke identification signal corresponds to the specificposition of the cylinder #5, the preliminary fuel injection is performedfor the cylinders #4 and #2 when they are in the intake stroke.

[0245] Although the timing charts of FIGS. 26fA-26O describe thesituation in the low temperature range, the same correction is appliedin the extremely low temperature range with respect to the calculationof the secondary fuel injection amount for the cylinder HOSCYL1 and thatfor the cylinder HOSCYL2. The timing charts for the extremely lowtemperature range is therefore omitted herein.

[0246] The fuel injected in the state where the intake valve 18 is openis immediately aspirated into the combustion chamber 6 and dischargedwhen the cylinder performs the exhaust stroke.

[0247] It should be noted that in the cylinders #4 and #2, the sparkplug 14 sparks in the compression stroke before the cylinders performthe exhaust stroke, but since there is not enough fuel in thesecylinders to form a combustible air-fuel mixture, the fuel aspiratedinto these cylinders are not burned and discharged from the exhaustvalve 19 in the exhaust stroke that follows.

[0248] The controller 1 calculates the secondary fuel injection pulsewidth correction values TIST3HOS1 and TIST3HOS2 for compensating thedischarged amount of fuel from these cylinders #4 and #2, and increasesthe secondary fuel injection amount for the cylinders #4 and #2 by thesecorrection values respectively.

[0249] Due to the above process, the air-fuel ratio of the air-fuelmixture that is burned by the first combustion is maintained at apreferable level even in a cylinder where the whole or a part of thefuel injected by the preliminary fuel injection is discharged before thefirst combustion takes place.

[0250] Next, referring to FIG. 27, a fourth embodiment of this inventionwill be described.

[0251] According to this embodiment, in addition to the control processof the third embodiment, a wall flow correction of the secondary fuelinjection pulse width TIST3 for the cylinders HOSCYL1 and HOSCYL2 in thestarting period is further performed.

[0252] In the third embodiment, it is considered that whole of the fuelinjected for the cylinder HOSCYL1 before the crank angle counter valueDEGHOS reaches the predetermined angle DEGLIM1 and whole of the fuelinjected for the cylinder HOSCYL2 before the crank angle counter valueDEGHOS reaches the predetermined angle DEGLIM2 are discharged before thefirst combustion takes place. In reality, however, a part of the fuelinjected in this period will remain in the intake port 7 in the form ofa wall flow and be burned when the cylinder performs the firstcombustion. The rate of the generation of wall flow with respect to thetotal preliminary fuel injection amount depends on the temperature ofthe engine.

[0253] In this embodiment, the controller 1 determines a wall flowcorrection coefficient HOSW according to the water temperature TWINT atthe startup of cranking, and corrects the secondary fuel injection pulsewidth correction values TIST3HOS1 and TIST3HOS2 using the wall flowcorrection coefficient HOSW.

[0254] In order to realize the above control, the controller 1 performsa subroutine shown in FIG. 27 instead of the subroutine of FIG. 23 ofthe third embodiment for calculating the fuel amount which is dischargedfrom the exhaust valve 19.

[0255] Describing this subroutine in comparison with the subroutine ofFIG. 23, a step S385 is provided between the steps S276 and S277, a stepS378 is provided for replacing the step S278, and a step S379 isprovided for replacing the step S279. Similarly, a step S386 is providedbetween the steps S281 and S282, a step S383 is provided for replacingthe step S283 and a step S284 is provided for replacing the step S284.

[0256] The process of the step S385 and that of the step S386 areidentical. Specifically, the wall flow correction coefficient HOSW islooked up in a map of which the characteristics are shown in the figurefrom the water temperature TWINT The map is previously stored in thememory of the controller 1.

[0257] In the step S378, the controller 1 sets a value obtained bymultiplying the counter value TIMHOS by the wall flow correctioncoefficient HOSW is set as the secondary fuel injection pulse widthcorrection value TIST3HOS1 for the cylinder HOSCYL1. In the step S379, avalue obtained by multiplying the preliminary fuel injection pulse widthTIST1 by the wall flow correction coefficient HOSW is set as thesecondary fuel injection pulse width correction value TIST3HOS1 for thecylinder HOSCYL1.

[0258] Likewise, in the step S383, a value obtained by multiplying thecounter value TIMHOS by the wall flow correction coefficient HOSW is setas the secondary fuel injection pulse width correction value TIST3HOS2for the cylinder HOSCYL2. In the step S384, a value obtained bymultiplying the preliminary fuel injection pulse width TIST1 by the wallflow correction coefficient HOSW is set as the secondary fuel injectionpulse width correction value TIST3HOS2 for the cylinder HOSCYL2.

[0259] According to this embodiment, the air-fuel ratio of the air-fuelmixture that is burned by the first combustion in the cylinders HOSCYL1and HOSCYL2 can be controlled more precisely.

[0260] Next, referring to FIGS. 28A-28C and FIGS. 29-31, a fifthembodiment of this invention will be described.

[0261] Referring to FIGS. 28A-28C, when the water temperature TWINT ofthe engine at startup of cranking is low, the required fuel injectionpulse width TIPS is large because injected fuel is not quickly atomized.On the other hand, when the water temperature of the engine is low,frictional resistance of the engine is also large, so the crankingrotation speed is lowered. As a result, the maximum fuel injectionamount that the fuel injector 8 can inject in one injection increases.However, since the former phenomenon affects largely to the fuelinjection control than the latter, the required fuel injection pulsewidth exceeds the maximum possible injection pulse width of the fuelinjector 8, when the water temperature TWINT at startup of cranking islower than a threshold temperature Tw1. As described hereinabove, thepreliminary fuel injection has a meaning of previously compensating thisdeficiency in fuel injection pulse width.

[0262] When the water temperature TWINT at startup of cranking is high,the required fuel injection pulse width is smaller than the maximumpossible injection pulse width of the fuel injector 8. When the watertemperature TWINT at startup of cranking is higher than thepredetermined temperature Tw1, the basic value TIST1 for the preliminaryfuel injection pulse width will be zero as shown in FIG. 28B.Accordingly, the preliminary fuel injection pulse width TIST1 will bezero.

[0263] Referring to FIG. 28C, a predetermined temperature Tw2corresponds to the temperature where the preliminary fuel injectionpulse width TIST1 is equal to the minimum fuel injection pulse widthTEMIN that the fuel injector 8 can inject.

[0264] When the water temperature at the cranking start TWINT is betweenthe values Tw1 and Tw2, the preliminary fuel injection pulse width TIST1is not zero but smaller than the minimum fuel injection pulse widthTEMIN. In this case, according to the aforementioned first-fourthembodiments, the preliminary fuel injection is not performed, but thepulse width corresponding to the preliminary fuel injection pulse widthTIST1 is stored in the memory of the controller 1 as a memorized pulsewidth TIST1M and it is added later to the fuel injection pulse widthsTIST2 and TIST3 in the starting period.

[0265] Herein, the maximum value that can be added to the fuel injectionpulse widths TIST2 and TIST3 is equal to the minimum fuel injectionpulse width TEMIN. It is therefore necessary to ensure that the totalpulse width of TIST2 or TIST3 and the minimum fuel injection pulse widthTEMIN should not exceeds the maximum possible fuel injection pulse widthof the fuel injector 8. A process performed by the controller 1 toensure the above control would be somewhat complicated.

[0266] In this embodiment, as shown in FIG. 28C, the controller 1 isprogrammed to control the fuel injector 8 to perform the preliminaryfuel injection with a fuel injection pulse width equal to the minimumfuel injection pulse width TEMIN, when the preliminary fuel injectionpulse width TIST1 is smaller than the minimum fuel injection pulse widthTEMIN of the fuel injector 8, and the difference between the minimumfuel injection pulse width and the preliminary fuel injection pulsewidth is subtracted from the pulse widths TIST2 and TIST3 in thestarting period respectively.

[0267] Next, referring to FIGS. 29-31, the control process for the abovecontrol is described. The engine to which this embodiment is applied isa four-stroke cycle four-cylinder engine that is identical to the engine1 to which the first embodiment is applied.

[0268] In this embodiment, the controller 1 performs a subroutine ofFIG. 29 instead of the subroutine of FIG. 11, performs a subroutine ofFIG. 30 instead of the subroutine of FIG. 12, and performs a subroutineof FIG. 31 instead of the subroutine of FIG. 13.

[0269] The subroutine of FIG. 29 corresponds to that of FIG. 11 whereinthe step S42 is replaced by a step S142 and a step S144 is newlyintroduced.

[0270] Referring to FIG. 29, when the preliminary fuel injection pulsewidth TIST1 is smaller than the minimum fuel injection pulse width TEMINin the step S40, the controller 1 determines if the preliminary fuelinjection pulse width TIST1 has a value of zero in a step S144.

[0271] When the preliminary fuel injection pulse width TIST1 is notsmaller than the minimum fuel injection pulse width TEMIN in the stepS40, or when the preliminary fuel injection pulse width TIST1 has avalue of zero in the step S144, the controller 1 proceeds to the laststep S43.

[0272] When on the other hand the preliminary fuel injection pulse widthTIST1 does not have a value of zero in the step S144, the controller 1sets the stored value TIST1M to be equal to the preliminary fuelinjection pulse width TIST1 as in the case of the first embodiment, butsets the preliminary fuel injection pulse width TIST1 equal to theminimum fuel injection pulse width TEMIN in a following step S142.

[0273] In the last step S43, the controller 1 sets the preliminary fuelinjection pulse width that will actually be commanded to the fuelinjector 8 equal to the value of TIST1 that has been set in the step S38or step S142. After performing the process of the step S43, thecontroller 1 terminates the subroutine.

[0274] The subroutine of FIG. 30 corresponds to the subroutine of FIG.12 wherein the step S48 is replaced by a step S148 and the step S49 isreplaced by a step S149.

[0275] In the step S148, the controller 1 determines if the preliminaryfuel injection pulse width TIST1 is equal to the minimum fuel injectionpulse width TEMIN.

[0276] When the preliminary fuel injection pulse width TIST1 is notequal to the minimum fuel injection pulse width TEMIN in the step S148,the controller 1 performs the process of the last step S50 as in thecase of the first embodiment.

[0277] When the preliminary fuel injection pulse width TIST1 is equal tothe minimum fuel injection pulse width TEMIN in the step S148, thecontroller 1 sets a value obtained by subtracting a difference of theminimum fuel injection pulse width TEMIN and the stored value TIST1Mfrom the preliminary fuel injection pulse width TIST2 as a new primaryfuel injection pulse width TIST2 in the step S149. After the process ofthe step S149, the controller proceeds to the last step S50 where theprimary fuel injection pulse width that will actually be commanded tothe fuel injector 8 is set in a similar way as in the first embodiment,and terminates the subroutine.

[0278] The subroutine of FIG. 31 corresponds to subroutine of FIG. 13wherein the step S55 is replaced by a step S155 and the step S56 isreplaced by a step S156.

[0279] In the step S155, the controller 1 determines if the preliminaryfuel injection pulse width TIST1 is equal to the minimum fuel injectionpulse width TEMIN.

[0280] When the preliminary fuel injection pulse width TIST1 is notequal to the minimum fuel injection pulse width TEMIN in the step S155,the controller 1 performs the process of the last step S57 as in thecase of the first embodiment.

[0281] When the preliminary fuel injection pulse width TIST1 is equal tothe minimum fuel injection pulse width TEMIN in the step S155, thecontroller 1 sets a value obtained by subtracting a difference of theminimum fuel injection pulse width TEMIN and the stored value TIST1Mfrom the secondary fuel injection pulse width TIST3 as a new secondaryfuel injection pulse width in the step S156. After the process of thestep S156, the controller proceeds to the last step S57 where thesecondary fuel injection pulse width that will actually be commanded tothe fuel injector 8 is set in a similar way as in the first embodiment,and terminates the subroutine.

[0282] According to this embodiment, the necessary fuel supply amountfor the first combustion is ensured in each cylinder, so the stablefirst combustion in each cylinder is realized.

[0283] Next, referring to FIG. 32, a sixth embodiment of this inventionwill be described.

[0284] The fuel injector 8 operates by the electric current suppliedfrom a battery that is mounted on the vehicle. According to the abovedescribed embodiments, the minimum fuel injection amount TEMIN of thefuel injector 8 is considered to be a fixed value, but the minimum fuelinjection amount TEMIN actually varies according to a voltage VB of thebattery. If the minimum fuel injection pulse width TEMIN is dynamicallyset according to the voltage VB of the battery, therefore a more preciseair-fuel ratio control during engine startup will be realized.

[0285] According to this embodiment, as shown in FIG. 1, a batteryvoltage sensor 21 is further provided to detect the voltage VB of thebattery. The controller 1 performs a subroutine shown in FIG. 32 insteadof the subroutine of FIG. 11.

[0286] The subroutine of FIG. 32 differs from that of FIG. 11 in thatsteps S245 and S239 are provided as a replacement of the step S39, astep S144 is provided between the steps S40 and S41, and a step S142 isprovided as a replacement of the step S42.

[0287] The controller 1 reads the voltage VB of the battery in the stepS245, looks up a map prestored in the memory of the controller 1 in thefollowing step S239, and determines the minimum fuel injection pulsewidth TEMIN from the voltage VB. Herein, the map specifies that thevalue of TEMIN increases as the voltage VB lowers as specified in theblock of the step S239.

[0288] The process of the step S144 and the step S142 is identical tothat of the subroutine of FIG. 29 of the fifth embodiment.

[0289] By varying the value of the minimum fuel injection pulse widthTEMIN according to the voltage VB of the battery in this way, theprecision of air-fuel ratio control during engine startup is furtherimproved.

[0290] Setting of the minimum fuel injection pulse width TEMIN accordingto the voltage VB of the battery can also be applied to any one of thefirst through fifth embodiments.

[0291] The contents of Tokugan 2001-246489, with a filing date of Aug.15, 2001 in Japan, are hereby incorporated by reference.

[0292] Although the invention has been described above by reference tocertain embodiments of the invention, the invention is not limited tothe embodiments described above. Modifications and variations of theembodiments described above will occur to those skilled in the art, inlight of the above teachings.

[0293] The embodiments of this invention in which an exclusive propertyor privilege is claimed are defined as follows: TABLE 1 FIRST CYLINDER-#5 #4 #2 #1 #8 #7 #3 #6 STROKE IDENTIFICATION PRIMARY INJECTION IN #1,#8, #7 #8, #7, #3 #7, #3, #6 #3, #6, #5 #6, #5, #4 #5, #4, #2 #4, #2, #1#2, #1, #8 EXTREME LOW TEMP. RANGE PRIMARY INJECTION IN #1, #8 #8, #7#7, #3 #3, #6 #6, #5 #5, #4 #4, #2 #2, #1 LOW/NORMAL TEMP. RANGE HOSCYL1#4 #2 #1 #8 #7 #3 #6 #5 HOSCYL2 #2 #1 #8 #7 #3 #6 #5 #4

What is claimed is:
 1. A fuel injection control device for use with aninternal combustion engine, the engine comprising a plurality ofcylinders which sequentially perform a combustion of fuel and a startermotor which cranks up the engine, each of the cylinders having an intakeport and a fuel injector which injects fuel into the intake port, andsequentially performing an intake stroke, a compression stroke, aexpansion stroke and an exhaust stroke, the device comprising: a firstsensor which detects a start of the starter motor; a second sensor whichdetects a cylinder in a specific position in a specific stroke andgenerates a corresponding signal; and a programmable controllerprogrammed to: execute a cylinder-stroke identification identifying apresent stroke of each cylinder based on the signal generated by thesecond sensor; and control the fuel injectors to simultaneously performa primary fuel injection for a cylinder in the intake stroke and for acylinder in the exhaust stroke simultaneously, on the first execution ofthe cylinder-stroke identification.
 2. The fuel injection control deviceas defined in claim 1, wherein the controller is further programmed tocontrol the fuel injectors to sequentially perform a subsequent fuelinjection for a cylinder in the exhaust stroke on a second and laterexecutions of the cylinder-stroke identification.
 3. The fuel injectioncontrol device as defined in claim 2, wherein the controller is furtherprogrammed to control the fuel injectors to simultaneously perform apreliminary fuel injection for all the cylinders previous to the firstexecution of the cylinder-stroke identification.
 4. The fuel injectioncontrol device as defined in claim 3, wherein the second sensorcomprises a sensor which generates a reference signal when any one ofthe cylinders is in the specific position in the specific stroke and asensor which identifies a cylinder to which the reference signalcorresponds, and the controller is further programmed to control thefuel injectors to perform the preliminary fuel injection between a firstgeneration of the reference signal and the first execution of thecylinder-stroke identification.
 5. The fuel injection control device asdefined in claim 4, wherein the controller is further programmed todetermine if a first combustion in any cylinder has been performed, seta start timing of the subsequent fuel injection according to an elapsedtime from an immediately preceding generation of the reference signaluntil the first combustion is performed in any cylinder, and set thestart timing of the subsequent fuel injection through a process that anend timing of the fuel injection and a time period for the fuelinjection are first determined and the start timing of the subsequentfuel injection is then determined by subtracting the time period for thefuel injection from the end timing thereof, after the first combustionis performed in any cylinder.
 6. The fuel injection control device asdefined in claim 3, wherein the controller is further programmed tocalculate a required fuel injection amount required for a firstcombustion in each cylinder, calculate a deficiency from the requiredfuel amount and a maximum possible fuel injection amount of the fuelinjector, and control the fuel injectors to perform the preliminary fuelinjection with a fuel amount to compensate the deficiency.
 7. The fuelinjection control device as defined in claim 3, wherein the devicefurther comprises a sensor which detects an intake air amount of theengine, and the controller is further programmed to calculate a requiredfuel injection amount from the intake air amount and apply the larger ofa value obtained by subtracting an amount of the preliminary fuelinjection from the required fuel injection amount and a predeterminedprimary fuel injection amount to a fuel injection amount for the primaryfuel injection.
 8. The fuel injection control device as defined in claim7, wherein the controller is further programmed to apply the larger of avalue obtained by subtracting an amount of the preliminary fuelinjection from the required fuel injection amount and a predeterminedsubsequent fuel injection amount to a fuel injection amount for thesubsequent fuel injection.
 9. The fuel injection control device asdefined in claim 3, wherein the controller is further programmed tocalculate a fuel injection amount for the preliminary fuel injection,compare the fuel injection amount for the preliminary fuel injectionwith a predetermined minimum fuel injection amount, prevent thepreliminary fuel injection from being performed when the fuel injectionamount for the preliminary fuel injection is smaller than thepredetermined minimum fuel injection amount, and increase a fuelinjection amount for the primary fuel injection and a fuel injectionamount for the subsequent fuel injection for an increment correspondingto the fuel injection amount for the preliminary fuel injection.
 10. Thefuel injection control device as defined in claim 3, wherein thecontroller is further programmed to calculate a fuel injection amountfor the preliminary fuel injection, compare the fuel injection amountfor the preliminary fuel injection with a predetermined minimum fuelinjection amount, correct the fuel injection amount for the preliminaryfuel injection to be equal to the predetermined minimum fuel injectionamount when the fuel injection amount for the preliminary fuel injectionis smaller than the predetermined minimum fuel injection amount, andrespectively decrease a fuel injection amount for the primary fuelinjection and a fuel injection amount for the subsequent fuel injectionfor a decrement corresponding to a difference between the fuel injectionamount for the preliminary fuel injection before correction and thepredetermined minimum fuel injection amount.
 11. The fuel injectioncontrol device as defined in claim 10, wherein the fuel injectorsoperate by electric power, the device further comprises a sensor whichdetects a voltage of the electric power applied to the fuel injectors,and the controller is further programmed to set the predeterminedminimum fuel injection amount according to the voltage of the electricpower.
 12. The fuel injection control device as defined in claim 3,wherein the controller is further programmed to increase a fuelinjection amount to be injected after the preliminary fuel injection,for a specific cylinder which was in the intake stroke when thepreliminary fuel injection was performed.
 13. The fuel injection controldevice as defined in claim 12, wherein the controller is furtherprogrammed to set an increment for increasing the fuel injection amountfor the specific cylinder to be equal to a fuel injection amount for thepreliminary fuel injection.
 14. The fuel injection control device asdefined in claim 12, wherein the controller is further programmed tocalculate an amount of fuel injected during a predetermined period inthe preliminary fuel injection, and set an increment for increasing thefuel injection amount for the specific cylinder to be equal to theamount of fuel injected during the predetermined period in thepreliminary fuel injection.
 15. The fuel injection control device asdefined in claim 12, wherein the controller is further programmed tocalculate an amount of fuel injected during a predetermined period inthe preliminary fuel injection, calculate a wall flow component of theamount of fuel injected during the predetermined period, and set anincrement for increasing the fuel injection amount for the specificcylinder to be equal to a value obtained by subtracting the wall flowcomponent from the amount of fuel injected during the predeterminedperiod.
 16. The fuel injection control device as defined in claim 15,wherein the device further comprises a sensor which detects atemperature of the engine, and the controller is further programmed toset the wall flow component according to the temperature of the engine.17. The fuel injection control device as defined in claim 16, whereinthe controller is further programmed to decrease the wall flow componentas the temperature of the engine increases.
 18. The fuel injectioncontrol device as defined in claim 1, wherein the controller is furtherprogrammed to determine if a fuel injection pressure has reached apredetermined pressure and prevent the fuel injectors from injectingfuel when the fuel injection pressure has not reached the predeterminedpressure.
 19. A fuel injection control device for use with an internalcombustion engine, the engine comprising a plurality of cylinders whichsequentially perform a combustion of fuel and a starter motor whichcranks up the engine, each of the cylinders having an intake port and afuel injector which injects fuel into the intake port, and sequentiallyperforming an intake stroke, a compression stroke, a expansion strokeand an exhaust stroke, the device comprising: means for detecting astart of the starter motor; means for detecting a cylinder in a specificposition in a specific stroke and generating a corresponding signal;means for executing a cylinder-stroke identification identifying apresent stroke of each cylinder based on the signal generated by thecylinder detecting means; and means for controlling the fuel injectorsto simultaneously perform a primary fuel injection for a cylinder in theintake stroke and for a cylinder in the exhaust stroke simultaneously,on the first execution of the cylinder-stroke identification.
 20. A fuelinjection control method for an internal combustion engine, the enginecomprising a plurality of cylinders which sequentially perform acombustion of fuel and a starter motor which cranks up the engine, eachof the cylinders having an intake port and a fuel injector which injectsfuel into the intake port, and sequentially performing an intake stroke,a compression stroke, a expansion stroke and an exhaust stroke, themethod comprising: detecting a start of the starter motor; detecting acylinder in a specific position in a specific stroke; executing acylinder-stroke identification identifying a present stroke of eachcylinder based on the cylinder in the specific position in the specificstroke; and controlling the fuel injectors to simultaneously perform aprimary fuel injection for a cylinder in the intake stroke and for acylinder in the exhaust stroke simultaneously, on the first execution ofthe cylinder-stroke identification.